﻿#include<iostream>
using namespace std;
#include<string>

//﻿int main()
//
//{
//
//	string a = "hello world";
//
//	string b = a;
//
//	if (a == b)
//
//	{
//
//		cout << "true" << endl;
//
//	}
//
//	else cout << "false" << endl;
//
//	string c = b;
//
//	c = "";
//
//	if (a == b)
//
//	{
//
//		cout << "true" << endl;
//
//	}
//
//	else cout << "false" << endl;
//
//	a = "";
//
//	if (a == b)
//
//	{
//
//		cout << "true" << endl;
//
//	}
//
//	else cout << "false" << endl;
//
//	return 0;
//
//}
//

//int main()
//{
//	string a = "hello world";
//	
//		string b = a;
//	
//		if (a == b)
//	
//		{
//	
//			cout << "true" << endl;
//	
//		}
//	
//		else cout << "false" << endl;
//	
//		string c = b;
//	
//		c = "";
//	
//		if (a == b)
//	
//		{
//	
//			cout << "true" << endl;
//	
//		}
//	
//		else cout << "false" << endl;
//	
//		a = "";
//	
//		if (a == b)
//	
//		{
//	
//			cout << "true" << endl;
//	
//		}
//	
//		else cout << "false" << endl;
//	
//		return 0;
//	
//
//
//}

class Solution {
public:
    bool isPalindrome(string s) {
        string temp;
        for (size_t i = 0; i < s.size(); i++)
        {
            if (s[i] >= 'A' &&s[i]<='Z')
            {
                temp += s[i] + 32;

            }
            else if(s[i] >= 'a' && s[i] <= 'z' || (s[i] >= '0' && s[i] <= '9'))
            {
                temp += s[i];
            }
            //if (s[i] < 'A' || s[i]>'z' || s[i] == ' ')
           
        }
        s = temp;
        if (s == " ")
        {
            return true;
        }
        int left = 0;
        int right = s.size()-1;
        string s2;
        // reserve(100000000);
        s2 = s;
       while(left<right)
        {
            swap(s2[left], s2[right]);
            left++;
            right--;
        }
        if (s == s2)
        {
            return true;
        }
        else
        {
            return false;
        }


    }
};
int main()
{
    Solution s1;
    s1.isPalindrome("ab_a");
    return 0;
}